﻿//---------------------------------------------------------------------------------
// Copyright 2011 Microsoft Corporation
// Licensed under the Microsoft Public License (MS-PL) (the "License"); 
// You may not use this file except in compliance with the License. 
// You may obtain a copy of the License at http://www.opensource.org/licenses/ms-pl.html
// THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR 
// CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, 
// INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR 
// CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 
// MERCHANTABLITY OR NON-INFRINGEMENT. 
// See the Microsoft Public License (MS-PL) for the specific language governing 
// permissions and limitations under the License.
//---------------------------------------------------------------------------------
using System.Collections.ObjectModel;

namespace Microsoft.Telco.Controls.WindowsPhone
{
    /// <summary>
    /// Type to perform country specific operations
    /// </summary>
    public static class CountryHelper
    {
        /// <summary>
        /// Gets countries collection with their country code, short name and full name
        /// </summary>
        /// <returns></returns>
        public static ObservableCollection<Country> GetCountries()
        {
            var countries = new ObservableCollection<Country>();
            countries.Add(new Country("1", "US", "United States"));
            countries.Add(new Country("54", "AR", "Argentina"));
            countries.Add(new Country("56", "CL", "Chile"));
            countries.Add(new Country("57", "CO", "Colombia"));
            countries.Add(new Country("52", "MX", "Mexico"));
            countries.Add(new Country("34", "ES", "Spain"));
            countries.Add(new Country("44", "GB", "United Kingdom"));

            //countries.Add(new Country("1", "US", "United States"));
            //countries.Add(new Country("44", "GB", "United Kingdom"));
            //countries.Add(new Country("81", "JP", "Japan"));
            //countries.Add(new Country("376", "AD", "Andorra"));
            //countries.Add(new Country("971", "AE", "United Arab Emirates"));
            //countries.Add(new Country("93", "AF", "Afghanistan"));
            //countries.Add(new Country("268", "AG", "Antigua and Barbuda"));
            //countries.Add(new Country("264", "AI", "Anguilla"));
            //countries.Add(new Country("355", "AL", "Albania"));
            //countries.Add(new Country("374", "AM", "Armenia"));
            //countries.Add(new Country("599", "AN", "Netherlands Antilles"));
            //countries.Add(new Country("244", "AO", "Angola"));
            //countries.Add(new Country("672", "AQ", "Antarctica Territories"));
            //countries.Add(new Country("54", "AR", "Argentina"));
            //countries.Add(new Country("684", "AS", "American Samoa"));
            //countries.Add(new Country("43", "AT", "Austria"));
            //countries.Add(new Country("61", "AU", "Australia"));
            //countries.Add(new Country("297", "AW", "Aruba"));
            ////countries.Add(new Country("", "AX", "Aland Islands"));
            //countries.Add(new Country("994", "AZ", "Azerbaijan"));
            //countries.Add(new Country("387", "BA", "Bosnia and Herzegovina"));
            //countries.Add(new Country("246", "BB", "Barbados"));
            //countries.Add(new Country("880", "BD", "Bangladesh"));
            //countries.Add(new Country("32", "BE", "Belgium"));
            //countries.Add(new Country("226", "BF", "Burkina Faso (Upper Volta)"));
            //countries.Add(new Country("359", "BG", "Bulgaria"));
            //countries.Add(new Country("973", "BH", "Bahrain"));
            //countries.Add(new Country("257", "BI", "Burundi"));
            //countries.Add(new Country("229", "BJ", "Benin (Dahomey)"));
            ////countries.Add(new Country("", "BL", "Saint Barthélemy"));
            //countries.Add(new Country("441", "BM", "Bermuda"));
            //countries.Add(new Country("673", "BN", "Brunei Darussalam"));
            //countries.Add(new Country("591", "BO", "Bolivia"));
            //countries.Add(new Country("55", "BR", "Brazil"));
            //countries.Add(new Country("242", "BS", "Bahamas"));
            //countries.Add(new Country("975", "BT", "Bhutan"));
            ////countries.Add(new Country("", "BV", "Bouvet Island"));
            //countries.Add(new Country("267", "BW", "Botswana"));
            //countries.Add(new Country("375", "BY", "Belarus"));
            //countries.Add(new Country("501", "BZ", "Belize"));
            //countries.Add(new Country("1", "CA", "Canada"));
            //countries.Add(new Country("61", "CC", "Cocos (Keeling) Islands"));
            //countries.Add(new Country("243", "CD", "Congo (Zaire)"));
            //countries.Add(new Country("236", "CF", "Central African Republic"));
            //countries.Add(new Country("242", "CG", "Congo"));
            //countries.Add(new Country("41", "CH", "Switzerland"));
            //countries.Add(new Country("682", "CK", "Cook Islands"));
            //countries.Add(new Country("56", "CL", "Chile"));
            //countries.Add(new Country("237", "CM", "Cameroon"));
            //countries.Add(new Country("86", "CN", "China"));
            //countries.Add(new Country("57", "CO", "Colombia"));
            //countries.Add(new Country("506", "CR", "Costa Rica"));
            //countries.Add(new Country("53", "CU", "Cuba"));
            //countries.Add(new Country("238", "CV", "Cape Verde"));
            //countries.Add(new Country("618", "CX", "Christmas Island"));
            //countries.Add(new Country("357", "CY", "Cyprus"));
            //countries.Add(new Country("420", "CZ", "Czech Republic"));
            //countries.Add(new Country("49", "DE", "Germany"));
            ////countries.Add(new Country("", "DJ", "Djibouti"));
            //countries.Add(new Country("45", "DK", "Denmark"));
            //countries.Add(new Country("1767", "DM", "Dominica"));
            //countries.Add(new Country("1809", "DO", "Dominican Republic"));
            //countries.Add(new Country("213", "DZ", "Algeria"));
            //countries.Add(new Country("593", "EC", "Ecuador"));
            //countries.Add(new Country("372", "EE", "Estonia"));
            //countries.Add(new Country("20", "EG", "Egypt"));
            ////countries.Add(new Country("", "EH", "Western Sahara"));
            //countries.Add(new Country("291", "ER", "Eritrea"));
            //countries.Add(new Country("34", "ES", "Spain"));
            //countries.Add(new Country("251", "ET", "Ethiopia"));
            //countries.Add(new Country("358", "FI", "Finland"));
            //countries.Add(new Country("679", "FJ", "Fiji"));
            //countries.Add(new Country("500", "FK", "Falkland Islands"));
            //countries.Add(new Country("691", "FM", "Micronesia"));
            //countries.Add(new Country("298", "FO", "Faroe Islands"));
            //countries.Add(new Country("33", "FR", "France"));
            //countries.Add(new Country("241", "GA", "Gabon"));
            //countries.Add(new Country("44", "GB", "United Kingdom"));
            //countries.Add(new Country("1473", "GD", "Grenada"));
            //countries.Add(new Country("995", "GE", "Georgia"));
            //countries.Add(new Country("594", "GF", "French Guiana"));
            ////countries.Add(new Country("", "GG", "Guernsey"));
            //countries.Add(new Country("233", "GH", "Ghana"));
            //countries.Add(new Country("350", "GI", "Gibraltar"));
            //countries.Add(new Country("299", "GL", "Greenland"));
            //countries.Add(new Country("220", "GM", "Gambia"));
            //countries.Add(new Country("224", "GN", "Guinea"));
            //countries.Add(new Country("590", "GP", "Guadeloupe"));
            //countries.Add(new Country("240", "GQ", "Equatorial Guinea"));
            //countries.Add(new Country("30", "GR", "Greece"));
            ////countries.Add(new Country("", "GS", "S. Georgia Sandwich Isl."));
            //countries.Add(new Country("502", "GT", "Guatemala"));
            //countries.Add(new Country("1671", "GU", "Guam"));
            //countries.Add(new Country("245", "GW", "Guinea-Bissau"));
            //countries.Add(new Country("592", "GY", "Guyana"));
            //countries.Add(new Country("852", "HK", "Hong Kong"));
            ////countries.Add(new Country("", "HM", "Heard Isl.  McDonald Isl."));
            //countries.Add(new Country("504", "HN", "Honduras"));
            //countries.Add(new Country("385", "HR", "Croatia"));
            //countries.Add(new Country("509", "HT", "Haiti"));
            //countries.Add(new Country("36", "HU", "Hungary"));
            //countries.Add(new Country("62", "ID", "Indonesia"));
            //countries.Add(new Country("353", "IE", "Ireland"));
            //countries.Add(new Country("972", "IL", "Israel"));
            ////countries.Add(new Country("", "IM", "Isle of Man"));
            //countries.Add(new Country("91", "IN", "India"));
            ////countries.Add(new Country("", "IO", "British Indian Ocean Terr."));
            //countries.Add(new Country("964", "IQ", "Iraq"));
            //countries.Add(new Country("98", "IR", "Iran"));
            //countries.Add(new Country("354", "IS", "Iceland"));
            //countries.Add(new Country("39", "IT", "Italy"));
            ////countries.Add(new Country("", "JE", "Jersey"));
            //countries.Add(new Country("1876", "JM", "Jamaica"));
            //countries.Add(new Country("962", "JO", "Jordan"));
            //countries.Add(new Country("81", "JP", "Japan"));
            //countries.Add(new Country("254", "KE", "Kenya"));
            //countries.Add(new Country("996", "KG", "Kyrgyzstan"));
            //countries.Add(new Country("855", "KH", "Cambodia"));
            ////countries.Add(new Country("", "KI", "Kiribati"));
            //countries.Add(new Country("269", "KM", "Comoros"));
            //countries.Add(new Country("1869", "KN", "Saint Kitts and Nevis"));
            //countries.Add(new Country("850", "KP", "Korea (DPR)"));
            //countries.Add(new Country("82", "KR", "Korea, Republic of"));
            //countries.Add(new Country("965", "KW", "Kuwait"));
            //countries.Add(new Country("1345", "KY", "Cayman Islands"));
            //countries.Add(new Country("7", "KZ", "Kazakhstan"));
            //countries.Add(new Country("856", "LA", "Laos People's Dem. Rep."));
            //countries.Add(new Country("961", "LB", "Lebanon"));
            //countries.Add(new Country("1758", "LC", "Saint Lucia"));
            //countries.Add(new Country("423", "LI", "Liechtenstein"));
            //countries.Add(new Country("94", "LK", "Sri Lanka"));
            //countries.Add(new Country("231", "LR", "Liberia"));
            //countries.Add(new Country("266", "LS", "Lesotho"));
            //countries.Add(new Country("370", "LT", "Lithuania"));
            //countries.Add(new Country("352", "LU", "Luxembourg"));
            //countries.Add(new Country("371", "LV", "Latvia"));
            //countries.Add(new Country("218", "LY", "Libyan Arab Jamahiriya"));
            //countries.Add(new Country("212", "MA", "Morocco"));
            //countries.Add(new Country("377", "MC", "Monaco"));
            //countries.Add(new Country("373", "MD", "Moldova, Republic of"));
            ////countries.Add(new Country("", "ME", "Montenegro"));
            ////countries.Add(new Country("", "MF", "Saint Martin (French)"));
            //countries.Add(new Country("261", "MG", "Madagascar"));
            //countries.Add(new Country("692", "MH", "Marshall Islands"));
            //countries.Add(new Country("389", "MK", "Macedonia"));
            //countries.Add(new Country("223", "ML", "Mali"));
            ////countries.Add(new Country("", "MM", "Myanmar"));
            //countries.Add(new Country("976", "MN", "Mongolia"));
            //countries.Add(new Country("853", "MO", "Macao"));
            ////countries.Add(new Country("", "MP", "Northern Mariana Isl."));
            //countries.Add(new Country("596", "MQ", "Martinique"));
            //countries.Add(new Country("222", "MR", "Mauritania"));
            //countries.Add(new Country("1664", "MS", "Montserrat"));
            //countries.Add(new Country("356", "MT", "Malta"));
            //countries.Add(new Country("230", "MU", "Mauritius"));
            //countries.Add(new Country("960", "MV", "Maldives"));
            //countries.Add(new Country("265", "MW", "Malawi"));
            //countries.Add(new Country("52", "MX", "Mexico"));
            //countries.Add(new Country("60", "MY", "Malaysia"));
            //countries.Add(new Country("258", "MZ", "Mozambique"));
            //countries.Add(new Country("264", "NA", "Namibia"));
            //countries.Add(new Country("687", "NC", "New Caledonia"));
            //countries.Add(new Country("227", "NE", "Niger"));
            //countries.Add(new Country("672", "NF", "Norfolk Island"));
            //countries.Add(new Country("234", "NG", "Nigeria"));
            //countries.Add(new Country("505", "NI", "Nicaragua"));
            //countries.Add(new Country("31", "NL", "Netherlands"));
            //countries.Add(new Country("47", "NO", "Norway"));
            //countries.Add(new Country("977", "NP", "Nepal"));
            //countries.Add(new Country("674", "NR", "Nauru"));
            //countries.Add(new Country("683", "NU", "Niue"));
            //countries.Add(new Country("64", "NZ", "New Zealand"));
            //countries.Add(new Country("968", "OM", "Oman"));
            //countries.Add(new Country("507", "PA", "Panama"));
            //countries.Add(new Country("51", "PE", "Peru"));
            //countries.Add(new Country("689", "PF", "French Polynesia"));
            //countries.Add(new Country("675", "PG", "Papua New Guinea"));
            //countries.Add(new Country("63", "PH", "Philippines"));
            //countries.Add(new Country("92", "PK", "Pakistan"));
            //countries.Add(new Country("48", "PL", "Poland"));
            //countries.Add(new Country("508", "PM", "St. Pierre and Miquelon"));
            ////countries.Add(new Country("", "PN", "Pitcairn"));
            //countries.Add(new Country("1", "PR", "Puerto Rico"));
            ////countries.Add(new Country("", "PS", "Palestinian Territory"));
            //countries.Add(new Country("351", "PT", "Portugal"));
            //countries.Add(new Country("680", "PW", "Palau"));
            //countries.Add(new Country("595", "PY", "Paraguay"));
            //countries.Add(new Country("974", "QA", "Qatar"));
            //countries.Add(new Country("262", "RE", "﻿Réunion"));
            //countries.Add(new Country("40", "RO", "Romania"));
            //countries.Add(new Country("381", "RS", "Serbia"));
            //countries.Add(new Country("7", "RU", "Russian Federation"));
            //countries.Add(new Country("250", "RW", "Rwanda"));
            //countries.Add(new Country("966", "SA", "Saudi Arabia"));
            //countries.Add(new Country("677", "SB", "Solomon Islands"));
            //countries.Add(new Country("248", "SC", "Seychelles"));
            //countries.Add(new Country("249", "SD", "Sudan"));
            //countries.Add(new Country("46", "SE", "Sweden"));
            //countries.Add(new Country("65", "SG", "Singapore"));
            //countries.Add(new Country("290", "SH", "Saint Helena"));
            //countries.Add(new Country("386", "SI", "Slovenia"));
            ////countries.Add(new Country("", "SJ", "Svalbard and Jan Mayen"));
            //countries.Add(new Country("421", "SK", "Slovakia"));
            //countries.Add(new Country("232", "SL", "Sierra Leone"));
            //countries.Add(new Country("378", "SM", "San Marino"));
            //countries.Add(new Country("221", "SN", "Senegal"));
            //countries.Add(new Country("252", "SO", "Somalia"));
            //countries.Add(new Country("597", "SR", "Suriname"));
            //countries.Add(new Country("239", "ST", "Sao Tome and Principe"));
            //countries.Add(new Country("503", "SV", "El Salvador"));
            //countries.Add(new Country("963", "SY", "Syrian Arab Republic"));
            //countries.Add(new Country("268", "SZ", "Swaziland"));
            //countries.Add(new Country("1649", "TC", "Turks and Caicos Islands"));
            //countries.Add(new Country("1649", "TD", "Chad"));
            ////countries.Add(new Country("", "TF", "French Southern Territories"));
            //countries.Add(new Country("228", "TG", "Togo"));
            //countries.Add(new Country("66", "TH", "Thailand"));
            //countries.Add(new Country("992", "TJ", "Tajikistan"));
            ////countries.Add(new Country("", "TK", "Tokelau"));
            ////countries.Add(new Country("", "TL", "Timor-Leste"));
            //countries.Add(new Country("993", "TM", "Turkmenistan"));
            //countries.Add(new Country("216", "TN", "Tunisia"));
            //countries.Add(new Country("676", "TO", "Tonga"));
            //countries.Add(new Country("90", "TR", "Turkey"));
            //countries.Add(new Country("1868", "TT", "Trinidad and Tobago"));
            //countries.Add(new Country("688", "TV", "Tuvalu"));
            //countries.Add(new Country("886", "TW", "Taiwan, Province of China"));
            //countries.Add(new Country("255", "TZ", "Tanzania, United Republic of"));
            //countries.Add(new Country("380", "UA", "Ukraine"));
            //countries.Add(new Country("256", "UG", "Uganda"));
            ////countries.Add(new Country("", "UM", "United States Min. Out. Isl."));
            //countries.Add(new Country("1", "US", "United States"));
            //countries.Add(new Country("598", "UY", "Uruguay"));
            //countries.Add(new Country("998", "UZ", "Uzbekistan"));
            ////countries.Add(new Country("", "VA", "Holy See (Vatican City State)"));
            //countries.Add(new Country("1784", "VC", "St. Vincent  the Grenadines"));
            //countries.Add(new Country("58", "VE", "Venezuela"));
            //countries.Add(new Country("284", "VG", "Virgin Islands, British"));
            //countries.Add(new Country("340", "VI", "Virgin Islands, U.S."));
            //countries.Add(new Country("84", "VN", "Viet Nam"));
            //countries.Add(new Country("678", "VU", "Vanuatu"));
            //countries.Add(new Country("681", "WF", "Wallis and Futuna"));
            ////countries.Add(new Country("", "WS", "Samoa"));
            //countries.Add(new Country("967", "YE", "Yemen"));
            //countries.Add(new Country("269", "YT", "Mayotte"));
            //countries.Add(new Country("27", "ZA", "South Africa"));
            //countries.Add(new Country("260", "ZM", "Zambia"));
            //countries.Add(new Country("263", "ZW", "Zimbabwe"));
            
            return countries;
        }
    }
}
